/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BD;

import BE.Bonificacion;
import BE.Producto;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author dennis
 */
public class BonificacionxProdBD {

    private Session session;

    public BonificacionxProdBD() {

        this.session = null;

    }

    public List<Integer> buscarBonxProd(List <Producto> arrProducto) {
        List<Bonificacion> lista = null;
        List<Integer> arrBonificacion = new ArrayList<Integer>();
        String consulta = "";

        Transaction tx = null;

        try {
            session = HibernateUtil.getSessionFactory().getCurrentSession();
            tx = session.beginTransaction();

            for (int i = 0; i < arrProducto.size(); i++) {
                consulta = "Select {bonificacion.*} " +
                        "From bonificacion " +
                        "where srl_idbonificacion in (select srl_idbonificacion from bonificacionxproducto where srl_idproducto = " + arrProducto.get(i).getSrlIdproducto() + ")";

                SQLQuery sqlquery = session.createSQLQuery(consulta);
                sqlquery.addEntity("bonificacion", Bonificacion.class);

                session.flush();
                lista = sqlquery.list();

                if ((lista != null) && (lista.size() > 0)) {
                    arrBonificacion.add(arrProducto.get(i).getSrlIdproducto());
                    arrBonificacion.add(lista.get(0).getIntMontom());
                    arrBonificacion.add(lista.get(0).getIntMonton());
                } else {
                    consulta = "Select {bonificacion.*} " +
                            "From bonificacion " +
                            "where srl_idbonificacion in (select srl_idbonificacion from bonificacionxlineaproducto where srl_lineaproducto = " + arrProducto.get(i).getLineaproducto().getSrlLineaproducto() + ")";

                    sqlquery = session.createSQLQuery(consulta);
                    sqlquery.addEntity("bonificacion", Bonificacion.class);

                    session.flush();
                    lista = sqlquery.list();

                    if ((lista != null) && (lista.size() > 0)) {
                    arrBonificacion.add(arrProducto.get(i).getSrlIdproducto());
                    arrBonificacion.add(lista.get(0).getIntMontom());
                    arrBonificacion.add(lista.get(0).getIntMonton());
                    }

                }
            }
            tx.rollback();
        } catch (Exception e) {
            e.printStackTrace();
            if (tx != null) {
                tx.rollback();
            }
        }
      return arrBonificacion;
    }
}
